package main

import "fmt"

func main() {
	//切片
	var s = make([]int64, 5, 10)
	s[0] = 1
	s[1] = 2
	s[2] = 3
	s[3] = 4
	s[4] = 5
	fmt.Printf("原始切片 len %v ,cap %v", len(s), cap(s))
	var p = &s
	fmt.Printf("原始切片   取地址(&s)：%p ; \n直接对原始切片取地址( p)：%p \n", &s, p)
	fmt.Printf("原始切片   底层数组的内存地址（s）：     %p  \n原始切片   第一个元素的内存地址(&s[0])： %p\n", s, &s[0])
	callBySliceParam(s)
	fmt.Printf("改动后的值是: %v\n", s)
}

func callBySliceParam(s1 []int64) {
	fmt.Printf("函数里,函数参数（切片）取地址 %p\n", &s1)
	fmt.Printf("函数里,函数参数（切片）的底层数组的内存地址是 %p \n", s1)
	fmt.Printf("函数里,函数参数（切片）第一个元素的内存地址： %p \n", &s1[0])
	s1[0] = 10
}
